
package clases.personal;

import CapaDatos.DataSource;
import CapaDatos.Sql;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


public class Anticipo extends Personal {
    private Double monto;
    private String fecha;
    private String sql;
    private final DataSource dt;
   

    public Anticipo() {
        dt=new DataSource();
       
    }

    public Double getMonto() {
        return monto;
    }

    public void setMonto(Double monto) {
        this.monto = monto;
    }

    public String getFecha() {
        return fecha;
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

    

    private int MaxIdAnticipo() {
        return Sql.getMax("IDANTICIPO", "ANTICIPOS", true);
    }
    
    public void guardarAnticipo(){
    sql="INSERT INTO ANTICIPOS VALUES ("+this.MaxIdAnticipo()+",'"+this.getCedulaRuc()+"', "
            + "'"+this.fecha+"', "+this.monto+", "+true+")";
    Sql.insertar(sql);
     
    }
    
    public void actualizarAnticipo(String fecha, String cedula){
       
    sql="UPDATE ANTICIPOS SET CEDULARUC='"+this.getCedulaRuc()+"', FECHA='"+this.fecha+"', "
            + "MONTO="+this.monto+" "
            + "WHERE CEDULARUC='"+cedula+"' AND FECHA='"+fecha+"'";
    Sql.actualizar(sql);
    
    }
    
    public String SqlGeneral(){
     sql="SELECT ANTICIPOS.CEDULARUC, APELLIDO, NOMBRE, CARGO, FECHA, MONTO "
             + "FROM ANTICIPOS JOIN PERSONAL "
             + "ON ANTICIPOS.CEDULARUC=PERSONAL.CEDULARUC "
             + "JOIN PERSONA ON PERSONA.CEDULARUC=PERSONAL.CEDULARUC "
             + "ORDER BY(IDANTICIPO) DESC";
     return sql;
    }
    
    public String SqlMonto(int monto){
     sql="SELECT ANTICIPOS.CEDULARUC, APELLIDO, NOMBRE, CARGO, FECHA, MONTO "
             + "FROM ANTICIPOS JOIN PERSONAL "
             + "ON ANTICIPOS.CEDULARUC=PERSONAL.CEDULARUC "
             + "JOIN PERSONA ON PERSONA.CEDULARUC=PERSONAL.CEDULARUC "
             + "WHERE MONTO="+monto+" "
             + "ORDER BY(IDANTICIPO) DESC";
     return sql;
    }  
    
    public String SqlNombreAnticipo(String nombre){
     sql="SELECT ANTICIPOS.CEDULARUC, APELLIDO, NOMBRE, CARGO, FECHA, MONTO "
             + "FROM ANTICIPOS JOIN PERSONAL "
             + "ON ANTICIPOS.CEDULARUC=PERSONAL.CEDULARUC "
             + "JOIN PERSONA ON PERSONA.CEDULARUC=PERSONAL.CEDULARUC "
             + "WHERE NOMBRE LIKE('"+nombre+"%') "
             + "ORDER BY(IDANTICIPO) DESC";
     return sql;
    }  
    
    public String SqlApellidoAnticipo(String apellido){
     sql="SELECT ANTICIPOS.CEDULARUC, APELLIDO, NOMBRE, CARGO, FECHA, MONTO "
             + "FROM ANTICIPOS JOIN PERSONAL "
             + "ON ANTICIPOS.CEDULARUC=PERSONAL.CEDULARUC "
             + "JOIN PERSONA ON PERSONA.CEDULARUC=PERSONAL.CEDULARUC "
             + "WHERE APELLIDO LIKE('"+apellido+"%') "
             + "ORDER BY(IDANTICIPO) DESC";
     return sql;
    }  
    
    public String SqlFecha(String fecha){
     sql="SELECT ANTICIPOS.CEDULARUC, APELLIDO, NOMBRE, CARGO, FECHA, MONTO "
             + "FROM ANTICIPOS JOIN PERSONAL "
             + "ON ANTICIPOS.CEDULARUC=PERSONAL.CEDULARUC "
             + "JOIN PERSONA ON PERSONA.CEDULARUC=PERSONAL.CEDULARUC "
             + "WHERE FECHA='"+fecha+"'"
             + "ORDER BY(IDANTICIPO) DESC";
     return sql;
    }
    
    public String SqlCargoAnticipo(String cargo){
     sql="SELECT ANTICIPOS.CEDULARUC, APELLIDO, NOMBRE, CARGO, FECHA, MONTO "
             + "FROM ANTICIPOS JOIN PERSONAL "
             + "ON ANTICIPOS.CEDULARUC=PERSONAL.CEDULARUC "
             + "JOIN PERSONA ON PERSONA.CEDULARUC=PERSONAL.CEDULARUC "
             + "WHERE CARGO='"+cargo+"'"
             + "ORDER BY(IDANTICIPO) DESC";
     return sql;
    }
    
  public void ConsultaAnticipo(DefaultTableModel modelo, JTable tabla, String sql, JLabel Lpaginatotal, JLabel Lpagina, int pagina){
    
    sql=objPaginacion.getPaginacion(sql, pagina, 25);
    Sql.getConsulta(sql, dt);
    
    String []fila;
  
    while(dt.next()){
    fila=new String[6];
    fila[0]=dt.getString(1);
    fila[1]=dt.getString(2);
    fila[2]=dt.getString(3);
    fila[3]=dt.getString(4);
    fila[4]=dt.getString(5);
    fila[5]=dt.getString(6);
      
    modelo.addRow(fila);
    }
    objPaginacion.actualPagina(Lpagina);
        objPaginacion.totalPaginas(Lpaginatotal);
        tabla.getSelectionModel().setSelectionInterval(0, 0);
    }
    
   public void llenardatosAnticipo(String cedula, String fecha){
    sql="SELECT ANTICIPOS.CEDULARUC, APELLIDO, NOMBRE, CARGO, FECHA, MONTO, DIRECCION "
            + "FROM ANTICIPOS JOIN PERSONAL "
            + "ON ANTICIPOS.CEDULARUC=PERSONAL.CEDULARUC "
            + "JOIN PERSONA ON PERSONA.CEDULARUC=PERSONAL.CEDULARUC "
            + "WHERE ANTICIPOS.CEDULARUC='"+cedula+"' AND FECHA='"+fecha+"'";
    
    Sql.getConsulta(sql, dt);
    while(dt.next()){
       this.setCedulaRuc(dt.getString(1));
       this.setApellido(dt.getString(2));
       this.setNombre(dt.getString(3));
      // this.setCargo(dt.getString(4));
       this.fecha=dt.getString(5);
       this.monto=dt.getDouble(6);
       this.setDireccion(dt.getString(7));
    }
    }   
}
